<?php

/**
 * Paginator
 * 
 * Хэлпер, который показывает постраничную навигацию
 * Для его работы достаточно скормить ему полученые из модели данные
 * 
 * @author Игорь Будасов aka Lord <igor.budasov@gmail.com>
 */
 
class Lord_Action_Helper_Paginator extends Zend_Controller_Action_Helper_Abstract
{
		
/*------------------------------------------------------------------------------*/

	/**
	* Метод используется только лишь для вызова целевого метода
	* 
	* @param array $data
	*/
	
	public function direct($data)
	{         
		return $this->target($data);
	}
	
/*------------------------------------------------------------------------------*/	

	/**
	* Целевой метод. Он-то и делает всю работу
	*/
	
	public function target($data)
	{              
		// зачитываем конфиг				
        $config = Zend_Registry::get('config');
		$this->view = Zend_Registry::get('smarty'); 
          
		// новый пагинатор
		$paginator = Zend_Paginator::factory($data);
		
		// количество записей на страницу
		$paginator->setItemCountPerPage($config->common->itemCountPerPage);
		
		// страниц в линейке
		$paginator->setPageRange($config->common->pageRange);
		
		// текущий номер страницы
		$paginator->setCurrentPageNumber($this->getRequest()->getParam('page', 1));
        
		// стиль скроллинга линейки страниц
		Zend_Paginator::setDefaultScrollingStyle('Sliding');
        Zend_View_Helper_PaginationControl::setView($this->view);
		// устанавливаем шаблон отображения
        Zend_View_Helper_PaginationControl::setDefaultViewPartial('scripts/paginator.tpl');
        //$this->view->render('/design/scripts/paginator.tpl');
        //$ok = $this->view->render('scripts/paginator.tpl');
        //Zend_Paginator::render();
		// возвращаем готовый
		return $paginator;
	}
	
/*------------------------------------------------------------------------------*/	
}
